The present application relates generally to an improved data processing mechanism and more specifically to a mechanism for object-relational mapping (ORM) based data access for nested relational and hierarchical databases.
Database developers and application developers model business processes and data differently. Database developers typically view and represent data and business processes in terms of a relational model. Application developers typically view and represent data and business processes in terms of object oriented programming constructs. The mismatch between the views and representations of data and business processes by the database developers and the application developers is addressed by the use of object-relational mapping data access technologies. Examples of such ORM based data access technologies include Hibernate available as an open source project from www.hibernate.org, Java Persistence API (JPA) as specified in the Enterprise JavaBeans 3.0 specification, and Microsoft .NET Entity Framework available from Microsoft Corporation.
Hibernate, JPA, the .NET Entity Framework, and other ORM's typically define a set of metadata, in the form of code annotations, Extensible Markup Language (XML) mapping schemas or Document Type Definitions (DTDs), or other mechanisms, to map objects in object oriented programming languages to data stored in relational databases, thus making instances of such classes persistable. These persistable classes are commonly referred to as “entities” in ORM parlance.
With a proper ORM configuration, an application is freed from the low level details of database interaction, and instead deals directly only with entities. Much of the details of actually persisting these entities are hidden from the application and taken care of by the ORM frameworks, i.e., “entity providers.”
ORM technologies are gaining wide-spread acceptance in the industry. However, they focus mainly on traditional relational databases. Most, if not all, entity providers assume that there is standard Structured Query Language (SQL) support in the database.
Nested relational databases (also known as extended relational databases, or multi-value databases) differ from traditional relational databases in that they do not require adherence to the First Normal Form (1NF). Thus, table cells in a nested relational database can contain sets of values, rather than being restricted to atomic values. This allows tables to be nested within other tables in the nested relational data model. Hierarchical databases store their data in tree structures with parent nodes owning one or more child nodes. Because of these core differences from traditional relational databases, SQL is not the primary data access mechanism for these types of databases.
Thus, the known ORM technologies do not operate on nested relational or hierarchical databases in a native manner that caters to the respective strengths of these data models.